The present invention relates to a computer system for manipulating data models, more particularly the invention relates to a computer system for translating objects in one data model to objects in a second data model.
Information data models are used by information management personnel to model business environments and assure efficiency of operations. The computer systems involved in modeling such environments necessarily involve complex computer-level manipulations, since the environment that is being modeled consists of many complex and interrelated objects. Such information systems exploit database management technology to promote efficient design, enhance file maintenance and modification, eliminate data file redundancy, and provide substantial documentation regarding data file structure.
The implementation of an information management system utilizing database management technology involves the concept of dual data representation: i.e., logical representation; and physical representation. Logical representation relates to the form in which the data records are presented to and interact with the system user. Physical representation relates to the form in which individual data records are stored and how the records are manipulated by the computer system. The physical representation of the data is generally of little or no concern to the end-user, since the task of manipulating data storage areas is a function of the system, and as established by systems designers.
Of most concern to the system end-user, however, is the logical representation of the data, since the user's ability to store, retrieve, and modify aggregations of data items, data records, and data relationships is dependent upon the form in which the data base management system presents data to the user.
Information management systems operate in complex environments often consisting of hundreds or thousands of elements, or objects, and relationships, permitting users to manipulate and employ data in many ways. Representation of such elements and relationships to a user presents a set of problems not encountered, and certainly not resolved, by present data base management systems. Instead of being organized into application-oriented files, which are always addressed in the same way, as in database systems, the information may be organized so that it can be addressed in a variety of different ways, and can be used to answer a diversity of queries. Object-oriented systems currently offer the most effective means for handling such information.
Information management systems enable generation and manipulation of data models. In the past few years, different data models have evolved to represent the complex objects and relationships of objects for a given environment by different representations. In one object-oriented system, the Bachman Analyst.TM. system, available from the assignee of the current application, Bachman Information Systems, Inc., Burlington, Mass., the objects of a data model are represented by entities and associated attributes. In that system, the relationships among entities and attributes may be diagrammatically shown in a type of network-structure, Entity-Relationship (E-R) diagram. This type of data model is referred to as an extended entity data model, to describe the representation of objects in the model as entities and attributes. In another system, DB2.TM. system available from IBM Corporation, Armonk, N.Y., the objects are represented by tables and associated columns. This type of data model is referred to as a relational data model, reflecting the fact that the objects are defined by their relationship to other objects in the model.
In a work environment utilizing an information system having such data models, it is often desirable to enable users to work with either, or both, of two different data models representing the same information. There is a need for a system which enables a user to work in more than one data model environment, or design space, and to translate data models developed in one environment into another environment. The process of translation from one data model to another, is referred to as "engineering." In the field, it is known to assign a directionality for translations between two data models, so that translation is said to occur through "forward" or "reverse" engineering. In forward engineering, a term primarily used with respect to the F-R editor of the Bachman Analyst system, objects are translated from an extended-entity data model to a relational data model. In a similar fashion, reverse engineering refers to translating from a relational data model to an extended-entity data model. In such data models, the extended-entity data model is relatively compact while the relational data model is not. As a result, a user may define a model in Analyst design space using a highly efficient methodology, and then may forward engineer that model to the DB2 design space where the model may be fully expressed with great detail. Thus, the advantage of forward engineering from the Analyst design to the DB2 design spaces is that it enables the representation of a relatively large amount of information by user input of a relatively small amount of information. Alternatively, a user could specify a model, or portion of a model, in great detail in the DB2 design space, and then, through reverse engineering, obtain a compact, efficient representation of that model in the Analyst design space.
However, in the prior art, enabling a user to work in two environments, or design spaces, introduces potential inconsistencies and conflicts between the resulting two data models. For example, if a user creates a data model using an extended entity data model, and wants to view the model in a relational data model construct, forward engineering may be performed on the objects. To be effective, the translation, or engineering time must be relatively short, and the user must be able to continue working on the extended entity model. If the relational model is static during changes made to the extended entity model, the changes reflected in the extended entity model will not be reflected in the relational model. As a result of such situations, there is a need for periodic synchronization between the two data models. This synchronization process has not been effectively accomplished in the prior art, so that users can work independently in the two data spaces.
One way prior art systems have approached translation between data models is by associating objects across the design spaces by object name as the object is created. Thus, when an object with an associated name "CUSTOMER" is created in one environment, the name "CUSTOMER" is unique to the named object. During the translation of the object to the other environment, a new object name "CUSTOMER.NEW" is created which is related to "CUSTOMER" via the object name. However, one problem encountered by that prior art system is that if, for example, the user changes the name from "CUSTOMER" to "CUSTOMER2" in the first environment, a different identifier then becomes associated with the newly named object. Thereafter, when the system looks to find the previously translated "CUSTOMER.NEW" and its related object in the first environment, it determines that the object no longer exists
While on an object-by-object basis this poses a technical problem that perhaps could be successfully addressed, in a complex multi-object information system environment the problem is compounded. In such an environment, each object has uniquely associated properties, constraints and rules. Some of the constraints are generated automatically upon creation of the named object For example, in a relational model, when a Table is created called "TABLENAME", it may have a constraint "length=11 characters", or a rule that the contents are alphanumeric. During, for example, reverse engineering from a relational model to an extended entity model, most of the constraints and properties are carried over to the translated object. Thus, if the object in one environment is renamed such that a new identifier is created, the translation and necessary synchronization will be ineffective.
A similar situation arises when an object in either design space is modified. In prior art systems, modification of an object in one design space, whether by name, property or constraint, results in the need for a new translation of that object into the second design space. This effectively precludes a user, or multiple users, from working in two data model design spaces.
In addition, the manager of a complex multi-object information system implementing particular data models must be able to retain some control over the naming of objects in both models. For example, if one user names certain objects in the extended entity model "CUSTOMER", and another user names those same objects in the relational model "NAMES", any subsequent translation between the two models may result in duplicate objects and improper transformations. Thus, there is also a need for a naming standard which is invoked by the computer system to assure naming control over the two data models.